#ifndef ILLIB_BUFFER_H_
#define ILLIB_BUFFER_H_

#include <illib/Allocator.h>
#include <illib/System.h>
namespace illib{
	namespace Buffer {
		class Static : public System::Memory {
		private:
			Static(const Static &other);
		protected:
			friend class Dynamic;
		public:
			Static(Allocator &allocator, size_t size);
			Static(uint8_t * data, size_t size);
			~Static();
			size_t allocated();
			void setup(Allocator &allocator, size_t size);
			void setup(uint8_t * data, size_t size);
			bool resize(size_t size, bool keep);
			void destroy();
			bool tracked();
			void debug(ConsoleLogger * parent);
		};
	}
}
#endif /* ILLIB_BUFFER_H_ */
